Program control system for manipulator

ABSTRACT

A program control system is disclosed wherein the coordinates of a plurality of specified points of a prescribed path in the space to be traced by a manipulator assembly which are spaced apart from each other by a line segment of the same unit length are stored in a storage device in a teaching mode, and one set of coordinates of the adjacent specified points are simultaneously and sequentially read out from the storage device in a repeat mode so that the position command signals or coordinates of a plurality of interpolation points between the adjacent specified points are obtained by linear interpolation and are sequentially compared, at a predetermined time interval, with the actual or present positions of the manipulator assembly. The manipulator assembly is displaced at a velocity corresponding to the difference between the position command signal and the actual or present position signal so that the difference may become zero.

BACKGROUND OF THE INVENTION

The present invention relates to a program control system especially adapted for the operations such as automatic welding, automatic coating and so on which require continuous controls.

Various industrial robots have been recently developed and used in various fields. In the so-called "teaching mode", the manipulator assembly of an industrial robot is taught to trace a prescribed path to perform a series of operation steps in succession. Specified position information, that is the coordinates of the specified points of the prescribed path at which the specified steps of operations must be performed are stored in a storage device. In the so-called "repeat cycles", the industrial robot performs a series of operational steps taught in succession.

To control the industrial robots of the type described, the so-called point-to-point control system has been widely employed. In the repeat cycle, the command signal for causing the industrial robot to perform the first step is read out from the storage device, and is compared with the actual or present position information representative of the actual or present position of the manipulator assembly of the industrial robot, so that manipulator may be actuated or displaced in the direction in which the difference between the command signal and the actual or present position signal may become zero. When the difference becomes zero, that is when the manipulator reaches the point designated by the command signal, the manipulator is stopped and then the next command signal is read out and compared with the actual or present position signal so that the manipulator is actuated or displaced in the direction in which the difference between the two signals may become zero. In like manner, the above operations are cycled as the manipulator is displaced from one specified point to another.

As is clear from the above explanation of the point-to-point control system, it suffices to control the manipulator assembly of an industrial robot so that the manipulator assembly may be displaced from one specified point to another of a prescribed path in space, and where the specific path the manipulator assembly follows as it moves from one specified point to the next is immaterial. The industrial robots employing the point-to-point control system are best adapted for use in the spot welding operations, assembly work and so on, in which the path along which the manipulator assembly traces from one specified point to the next is immaterial so that considerable man-power saving and the improvement in operation efficiency may be expected.

However, there arise various problems when the industrial robots employing the point-to-point control system are employed in the operations such as arc weldings, coating and so on in which the manipulator assembly of the robot must correctly trace a prescribed path in space continuously. Therefore there has been devised and demonstrated a program control system for industrial robots or manipulators in which a prescribed path to be traced by the robots or manipulators is considered as consisting of the totality of points of a prescribed path, so that the manipulator is caused to move from one specified point to the next to trace the whole prescribed path. But this system has a distinct disadvantage in that a tremendous number of sets of the coordinates of the specified points of a prescribed path must be stored in a storage device, thus resulting in intolerable complexity in the so-called "teaching mode". Furthermore, a large volume of the position signals representing the coordinates of the specified points must of course be read out in the repeat mode, so that it becomes extremely difficult to attain highspeed control.

One of the objects of the present invention is to provide an improved program control system especially adapted for use in the operations in which the manipulator assembly of an industrial robot must correctly and continuously trace a prescribed path in the space as in the case of arc weldings, coatings and so on.

Another object of the present invention is to provide an improved program control system of the type described without causing complexity in the teaching mode and without increasing of the capacity of a storage device.

Briefly stated, according to the control system employing a program control system in accordance with the present invention, a manipulator assembly is caused to displace itself along a line segment of a unit length of a prescribed path from one specified point to the next. The position information or the coordinates of each specified point of the prescribed path is converted into digital signals by an encoder, which is provided for each axis or degree of freedom of the manipulator assemby, and the digital signals are stored in a storage device. In the repeat mode one set of the specified position information or coordinates of the adjacent specified points are read out substantially simultaneously at a predetermined time interval, and are applied to a linear interpolation unit so that the position command signals or coordinates of the interpolation points between the adjacent specified points may be sequentially obtained. The position command signals are sequentially compared, at a predetermined time interval, with the actual or present position signal representing the actual or present position of the manipulator assembly so that the manipulator may be displaced at a velocity corresponding to the difference between the position command signal and the actual or present position signal in the direction which the difference may become zero or may be eliminated. Thus the manipulator assembly may correctly trace a prescribed path.

The above and other objects, features and advantages of the present invention will become more apparent from the following description of one preferred embodiment thereof taken in conjunction with the accompanying drawing.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 is a perspective view of one example of an industrial robot employing a program control system in accordance with the present invention;

FIGS. 2A and 2B show two examples of a hand assembly adapted for use with the industrial robot of the type shown in FIG. 1;

FIG. 3 shows a prescribed path used for the explanation of the underlying principle of the present invention;

FIG. 4 shows an example of a set of specified position information or coordinates of specified points of a prescribed path stored in a storage device;

FIGS. 5A and 5B is a block diagram of one preferred embodiment of a program control system in accordance with the present invention; and

FIG. 6 is a detailed block diagram of a linear interpolation unit shown in FIG. 5.

DESCRIPTION OF THE PREFERRED EMBODIMENT

An industrial robot shown in FIG. 1 has a casing 1 housing therein a part of a hydraulic system and electrical and electronic devices including a power source, motors, control circuits and so on in order to provide a desired four articulations or degrees of freedom for a manipulator assembly 3. The hydraulically-powered manipulator assembly 3 is supported by a hollow trunk or pole 2 which in turn is rotatably mounted upon the casing 1 and is rotated by a hydraulic cylinder housed in the casing 1, so that the hydraulically powered manipulator assembly 3 may rotate in unison with the hollow trunk 2. Around the trunk 2 is disposed an elevating hydraulic cylinder (not shown) so that the manipulator assembly 3 may be vertically displaced along the trunk 2. A pair of hollow extension rods 4 are attached to the manipulator assembly 3 in such a way that they may be extended out of, or retracted into the manipulator assembly 3 by a hydraulic cylinder housed therein. The ends of the pair of extension rods 4 terminate in a hand-gear-train assembly 5 to which is coupled a hand assembly through a rotary joint 6.

Examples of the hand assembly adapted to be coupled to the hand-gear-train assembly 5 of the industrial robot are shown in FIGS. 2A and 2B. The hand assembly of the type shown in FIG. 2A and coupled to the hand-gear-train assembly 5 through its joint 9 is adapted to perform arc welding with a welding torch 8 while the hand assembly 10, of the type shown in FIG. 2B and coupled to the hand-gear-train assembly 5 through its joint 12, has a pair of gripping fingers 11 adapted to handle an object of a specified configuration.

Since the industrial robot of the type described above with reference to FIGS. 1, 2A, and 2B is described in detail for instance in U.S. Pat. No. 3,661,051, granted to M. J. Dunne et al., further description shall not be made in this specification.

The program control system in accordance with the present invention permits the hand-gear-train assembly and hence the hand-arm assembly of the industrial robot of the type shown in FIG. 1 to be continuously positioned at the specified points of a prescribed curve in the space. When, for instance, the hand assembly 7 of the type shown in FIG. 2A is utilized, arc welding along a prescribed path or welding line may be easily accomplished.

Next referring to FIGS. 3 and 4, the underlying principle of the present invention will be described hereinafter. For the sake of simplicity, it is assumed that the hand assembly traces a prescribed path or curved line passing through the specified points P₁, P₂ . . . and P_(n) whose coordinates in the two-dimensional rectangular cartesian coordinate system with X and Y axes are generally given by (x_(i), y_(i)), where i=1, 2 . . . and n. Furthermore, it is assumed that any adjacent specified points P_(i-1) and P_(i) satisfy the following equation

    (x.sub.i -x.sub.i-1).sup.2 +(y.sub.i -y.sub.i-1).sup.2 =const. (1)

In other words, the distance or increment between the adjacent specified points P_(i-1) and P_(i) or the length l of a line segment is constant. In this specification, the length l will be referred to either as "the unit length of a line segment" or "the unit length l".

The specified position or coordinate information of every specified point P_(i) of the curved line to be traced and spaced apart from each other by the unit length l is stored in a storage device of the industrial robot, and, in case of the "repeat mode", is read out at a predetermined time interval so that the manipulator assembly may control the hand assembly so as to trace a prescribed curved line. FIG. 4 shows the table of the specified position or coordinate information stored. It is readily understandable to those skilled in the art that it is not preferable to reduce the unit length l infinitely because the number of the specified points P_(i) is tremendously increased, the "teaching" mode becomes very complex, and a memory device with a large capacity is required. Therefore, in the instant embodiment the unit length l is selected as 1 mm, and the coordinates of some interpolation points between the adjacent specified points P_(i-1) and P_(i) are obtained by a linear interpolation as will be described in more detail hereinafter.

In general, the distances or increments between the adjacent points P_(i-1) and P_(i) along the X and Y axes are given by ##EQU1## For the sake of simplicity, it is assumed that the unit length l is divided into ten sections, and that the interpolation points are P.sub.(i-1,1), P.sub.(i-1,2) . . . and P.sub.(i-1,9). Then, their coordinates obtained by a linear interpolation are given by the following table.

                  Table 1                                                          ______________________________________                                         interpolation                                                                  points     X coordinate   Y coordinate                                         ______________________________________                                          P.sub.i-1.1                                                                               ##STR1##                                                                                      ##STR2##                                             P.sub.i-1.2                                                                               ##STR3##                                                                                      ##STR4##                                            --         --             --                                                    P.sub.i-1.9                                                                               ##STR5##                                                                                      ##STR6##                                            ______________________________________                                    

According to the present invention, in case of the "repeat mode", the coordinates of the adjacent specified points P_(i-1) and P_(i) are substantially simultaneously read out from the memory device, next the distance or increments V_(x) and V_(y) along the X and Y axes are calculated, and then the coordinates of the interpolating points P.sub.(i-1,1), P_(i-1),2) . . . and P.sub.(i-1,9) are obtained by a linear interpolation. The coordinates of the interpolation points that is, the position command signals are sequentially and from time to time compared with the actual or present position of the hand assembly, so that the deviation of the actual position from the interpolation point may be made zero. Since the coordinates of the interpolation points are read out at a predetermined time interval, the operating unit seems to be tracing a prescribed curved line passing through all of the specified points substantially at a constant resultant velocity. In other words, in general, the velocity of the manipulator assemby is dependent upon the difference between the position command signal and the actual or present position signal so that, according to the present invention, the command velocity is given at each interpolation point so as to trace the prescribed path passing through the specified points.

However, it is apparent to those skilled in the art that, unlike the conventional point-to-point control system, in the control system of the present invention the deviation continually occurs so that it does not follow that the operating unit traces the prescribed path defined by the coordinates of the interpolation points. In order to overcome this problem, according to the present invention, the discrepancy or difference between the position command information, i.e. the coordinates of the interpolation points (a sort of velocity command) and the information of the present or actual position is applied to the servo valves in the manipulator assembly through an integrator so that when the deviation increases, the velocity of the manipulating assembly is increased so as to make the deviation zero. This means that the position is controlled based upon the position command signals plotted over each unit length l.

FIG. 5 is a block diagram of the program control system in accordance with the present invention. A storage device 109 stores the coordinates of all of the specified points P_(i) and other auxiliary information which is required for causing the hand assembly to perform a required operation. Since the industrial robot of the type shown in FIG. 1 has four degrees of freedom or four axes, the specified position information for each of four axes must be stored in the storage device 109. Like the conventional industrial robots, the robot of the type shown in FIG. 1 is controlled by a program control system having the two fundamental modes, that is the "teach mode" and "the repeat mode".

In the teach mode, a switch SW is thrown as indicated by the broken lines in FIG. 5 so that a teach control unit 101 drives a servo amplifier 102 to cause a manipulator unit 103 to advance over the unit length l along a prescribed path each time. In practice, four servo amplifiers 102 must be provided for four axes or degrees of freedom. The specified point information for each axis is converted by a encoder 104 into digital signals which are transferred through a scanner 105 and the switch SW into the storage device 109. The scanner 105 has a function of scanning the encoder output of each axis. The above operations are cycled each time the manipulator assembly 103 is advanced over the unit length l from one specified point to the next of a prescribed path so that the specified position information or the coordinates of the specified points P_(i) may be sequentially stored in the storage device 109. In the teach mode, the addresses in the storage device 109 are accessible in response to the output of an address counter 116 which is incremented by one each time the manipulating unit 103 is advanced over the unit length l along a prescribed path. As described hereinbefore, other auxiliary information which is required for causing the hand assembly of the industrial robot to perform a desired operation at a certain specified point is also stored in the storage device 109, together with the specified position information. For instance, the auxiliary information is such that when the manipulator assembly 103 reaches a predetermined point it causes the hand assembly to grip or release an object. In the repeat mode the specified position information stored in the storage device is used to obtain the position command signals or coordinates of the interpolation points between the adjacent specified points P_(i) to be applied to the manipulator unit 103.

The teaching or repeat mode may be arbitarily selected by a control panel 112 connected to a sequence circuit 113 which has a function of giving not only the timing signals, but also the control signals to other component parts in the control system in response to the command signals from the control panel 112. For instance, a scanning timing circuit 117, which controls not only the timing of the scanning cycle of the scanner 105 and but also an integrator-demodulator 108 to be described hereinafter in more detail, is driven in response to the timing signals derived from the sequence circuit 113. The sequence circuit 113 is connected to a velocity setting circuit 114, which in turn is connected to a linear interpolation timing setting circuit 115, which in turn is connected to an address counter 116. The velocity setting circuit 114 is adapted to step down the clock signals derived from the sequence circuit 113 so that the speed for reading the specified position information from the storage device 109, that is, the velocity at which the manipulating unit 103 traces a prescribed path, may be changed. The velocity setting circuit 114 is controlled in response to the signal from the control panel 112. The output pulses of the velocity setting circuit 114, that is the clock pulse signals stepped down to a predetermined repetition rate, cause the linear interpolation timing setting circuit 115 to step up and to cause the address counter 116 to step up in response to an overflow pulse from the timing circuit 115. The timing with which a linear interpolation unit 110 operates is determined by the interpolation timing signal derived from the timing circuit 115. A decoder 111 decodes the various auxiliary information read out of the storage device 109, and its output is applied to the manipulating assembly 103.

In "the repeat mode", the address counter 116 steps up at a predetermined time interval in response to the clock signals which have been stepped down to a predetermined repetition rate as the timing pulses derived from the sequence circuit 113 pass through the velocity setting circuit 114, and the interpolation timing setting circuit 115. In response to the output signal from the address counter 116, the coordinates of the first specified point P₁ are read out, and then the coordinates of the next specified P₂ point are read out. In this case, when the coordinates of, for instance, the first specified point P₁ are read out, the signal representative of the completion of read out is generated, so that the output signal or address signal (that is, the content in the address counter 116) which is to be applied to the storage device 109 is stepped up so that the coordinates of the next specified point P₂ may be read out from the storage device 109. The operation for stepping up the address counter 116 is accomplished by a +1 circuit 118. The coordinates of the first and next specified points P₁ and P₂ read out from the storage device 109 are applied to the linear interpolation arithmetic unit 110 which computes first the distances or increments V_(x) and V_(y) between the first and next specified points P₁ and P₂ (see FIG. 3) and then divides them (V_(x) and V_(y)) by the number (in the instant embodiment, 10) of desired interpolation points. Thereafter in response to the interpolation timing signal from the interpolation timing setting circuit 115, the quotients, that is (x₂ -x₁)/10 and (y₂ -y₁)/10, are added to the coordinates x₁ and x₂ so that the position command signal or coordinates ##EQU2## of the first interpolation point may be obtained. In like manner, the coordinates of the second interpolation point and so on may be obtained. In practice, the X and Y coordinates for each of the four axes are of course obtained not simultaneously but sequentially in synchronism with the scanning timing of the scanner 105. Meanwhile the actual position of the manipulator assembly 103 is detected and converted by the encoder 104 into the digital signals which are scanned by the scanner 105. In the repeat mode the switch SW is switched to the position indicated by the solid lines in FIG. 5.

The position command signal, that is the coordinates of each interpolation point are compared by a comparator 106 with the actual or present position signal derived from the scanner 105 so that the deviation between them may be detected. It is sufficient to provide only one comparator 106 and only one digital-to-analog converter 107, regardless of the degree of freedom of the manipulator assembly in FIG. 1. The output signal of the comparator 106, representing the deviation between the position command signal and the actual or present position signal representative of the actual position of the manipulator assembly, is applied to the digital-to-analog converter 107 to be converted into the analog signal which is converted to the signal representative of a velocity by an integrator-demodulator 108, the number of which is equal to the number of axes (in the instant embodiment, four). The integrator-demodulator 108 has also a function of integrating the deviation described hereinbefore. The output signal from the integrator-demodulator 108 is amplified by the servo amplifier 102 so that the manipulator assembly 103 may be controlled.

The component parts 102 through 108 described hereinbefore with reference to FIG. 5 are substantially similar in construction and operation to those of the conventional industrial robots, and are disclosed in detail in said U.S. Pat. No. 3,661,051. The storage device 109 may be a magnetic drum or disk or magnetic core memory. The velocity setting circuit 114 may be a variable frequency divider, and the circuits 115 and 116 may be a binary or n-step counter.

The linear interpolation circuit may be of the type shown in FIG. 6. The position command information or coordinates of the specified points P_(i) read out of the storage device are transferred into a first register 110-1, while that of the next specified point P_(i+1), into a second register 110-2 as a switch SW' is so thrown as to interconnect the storage device and the second register 110-2. The absolute difference or increment between the two reference points P_(i) and P_(i+1) is obtained by a subtractor 110-3, and is applied to a shift circuit 110-4, while a polarity signal is applied from the subtractor 110-3 to an adder-subtractor 110-6. In the shift circuit 110-4, the signal representative of the difference or increment between the two reference points P_(i) and P_(i+1) is stepped down by N bits that is, to (P_(i) -P_(i+1))/2^(N), and transferred into a multiplier 110-5. Therefore passing the output of the subtractor 110-3 is equivalent to dividing it by 2^(N), i.e. an N power of the base 2. In the multiplier 110-5, the multiplier, that is the N-bit interpolation timing signal from the interpolation timing setting circuit multiplies a multiplicand, that is the output of the shift circuit 110-4, and the product, that is the output of the multiplier 110-5 is applied to the adder-subtractor 110-6 together with the output of the first register 110-1 and the polarity signal from the first subtractor 110-3. The adder-subtractor 110-6 adds or subtracts the output of the multiplier 110-5 to or from the output of the first register 110-1, depending upon whether the polarity signal from the first subtractor 110-3 indicates a positive or negative increment. The output of the adder-subtractor 110-6 is the position command signal representing the coordinates of each interpolation point between the specified points P_(i) and P_(i+1), the line segment of the unit length l connecting these two specified points being divided by 2^(N). As described with reference to FIG. 5, the output of the adder-subtractor 110-6 is applied to the comparator 106. As with the case of the comparator 106 and the digital-to-analog converter 107 shown in FIG. 5, it suffices to provide only one linear interpolation circuit 110 in common for all axes. 

What is claimed is:
 1. A program control system for controlling the motions of a manipulator assembly for tracing a prescribed path in space comprising:a. encoder means for generating position information representative of the coordinates of a plurality of specified points of said prescribed path in space which are spaced apart from each other solely by line segments of the same unit length, b. storage means connected to said encoder means for storing therein in addressable locations said specified position information representative of the coordinates of said plurality of specified points of said prescribed path which are spaced apart from each other by line segments of the same unit length, c. means for receiving a pulsatory clock signal, address counter means responsive to said clock signal for periodically generating addresses of said storage means at regularly spaced intervals, said clock signal receiving means and address counter means comprising reader means for reading from said storage means at a predetermined time interval the specified position information representative of the coordinates of the adjacent specified points as one set of the specified position information, d. interpolation arithmetic means for sequentially providing the coordinates of N interpolation points as position command signals between said adjacent specified points by linear interpolation based upon said set of specified position information, e. detecting means for sequentially comparing said position command signals with the signals representative of the actual or present position of said manipulator assembly and for generating a signal representing the difference between said two signals, and f. means for moving said manipulator assembly at a velocity corresponding to said signal representing the difference between said two signals so that the difference between said two signals may become zero.
 2. A program control system as defined in claim 1 further comprising means for integrating the signals each representing the difference between the position command signal at each interpolation point and the signal representative of the actual or present position of said manipulator assembly so that said manipulator assembly may be displaced at a velocity corresponding to the resulting integrated value.
 3. A program control system as defined in claim 1, wherein the manipulator assembly has four degrees of freedom, further comprisingscanning means for sequentially transferring the digital signals corresponding to the coordinates of each point into the storage means, and switch means connected to said scanner for providing said sequential digital signals to said detector means whereby the coordinates of the manipulator assembly are sequentially available for comparison with said coordinates from said interpolation arithmetic means.
 4. A program control system as defined in claim 1, wherein said manipulator assembly further comprises a hand assembly for gripping objects, address counter means for providing a unique output signal corresponding to each position command signal, said storage means further comprising means for storing a hand motion signal at a storage location corresponding to at least one of the output signals from said address counter means and decoder means connected to said storage means and responsive to the reading from said storage means of the specified position information at a storage location corresponding to said at least one of said output signals of said address counter means and for providing hand motion signals to said hand assembly.
 5. A program control system as defined in claim 1, wherein said interpolation arithmetic means comprises a first register, a second register, means for transferring the position information corresponding to two adjacent positions into said first and second register, means for subtracting the contents of said first and second register, shift circuit means for dividing the output of said subtraction means by N where N is equal to a positive integer, multiplier means for sequentially multiplying the output of said shift circuit means by integers between 1 and 10 and combining means for combining the output of said subtraction means with the output of said multiplier means thereby sequentially providing the coordinates of N interpolation points. .Iadd.
 6. In a programmable manipulator apparatus having a manipulator arm movable in a plurality of controllable axes, the combination of:storage means having stored therein a plurality of command signals at addressable locations, said position signals representing the position of said manipulator arm in said plurality of controllable axes; address means for controlling the read out of said command signals from said storage means; linear interpolation means responsive to two predetermined command signals read out of said storage means for generating a series of interpolation command signals representing a series of substantially, equally spaced positions between said command signals for each of said axes, said linear interpolation command signal generating means comprising means for sequentially multiplying the difference between said two command signals by a predetermined series of multiplication factors in accordance with a linear interpolation operation to provide a series of products; means for successively combining a predetermined one of said two command signals with each of said products to provide said series of interpolation command signals; and means responsive to said series of interpolation command signals for controlling the movement of said manipulator arm between the positions represented by said two command signals. .Iaddend..Iadd.
 7. The programmable manipulator apparatus of claim 6 wherein said multiplying means comprises means for developing a digital signal, d, equal to the difference between said two command signals for each of said axes. .Iaddend. .Iadd.
 8. The programmable manipulator apparatus of claim 7 wherein said multiplying means further comprises means for dividing said digital difference signal d by a predetermined factor n equal to the number of interpolation command signals, and sequential means for developing a product equal to the divided digital difference signal d/n multiplied by a factor m, where m varies from 1 to n. .Iaddend..Iadd.
 9. The programmable manipulator apparatus of claim 8 wherein said multiplying means further comprises sequential advancing means for controlling the sequential advancing of said sequential product developing means. .Iaddend..Iadd.
 10. The programmable manipulator apparatus of claim 6 wherein said movement controlling means comprises encoder means for each of said axes operative to develop encoder position signals representing the position of said arm in each of said axes and means for comparing said encoder position signals with said interpolation command signals. .Iaddend..Iadd.
 11. The programmable manipulator apparatus of claim 10 wherein said comparing means is operative to develop a digital output signal equal to the difference between said respective encoder position signals and said interpolation command signals. .Iaddend..Iadd.
 12. The programmable manipulator apparatus of claim 11 wherein said movement controlling means further comprises motive means responsive to said digital output signal of said comparing means to move said manipulator arm in said axes toward the position represented by said interpolation command signal. .Iaddend. .Iadd.
 13. The programmable manipulator apparatus of claim 12 wherein said linear interpolation command signal generating means further comprises means for controlling the sequential advancing of said multiplying means to multiply by said predetermined series of multiplication factors. .Iaddend..Iadd.
 14. The programmable manipulator apparatus of claim 13 wherein said motive means comprises means for moving said manipulator arm at a velocity corresponding to said digital output signal of said comparing means. .Iaddend..Iadd.
 15. The programmable manipulator apparatus of claim 10 further comprising teach means for recording said encoder position signals into said storage means during a teaching phase as said manipulator arm is moved over a desired path. .Iaddend..Iadd.
 16. The programmable manipulator apparatus of claim 15 further comprising mode means for controlling the operation of said manipulator apparatus in a first teach mode and a second repeat mode. .Iaddend..Iadd.
 17. The programmable manipulator apparatus of claim 16 wherein said mode controlling means comprises switch means for providing said encoder position signals to said teach recording means in said teach mode and for providing said encoder position signals to said comparing means in said repeat mode. .Iaddend. .Iadd.
 18. The programmable manipulator apparatus of claim 6 further comprising multiplex means for controlling the operation of said linear interpolation command signal generating means and said address read out controlling means for each of said axes, each of said linear interpolation command signals in said series comprising an axis interpolation command signal for each of said axes. .Iaddend..Iadd.
 19. The programmable manipulator apparatus of claim 18 wherein said multiplex controlling means comprises scanning means to define a sequential multiplex scan sequence, said multiplex scan sequence defining a scan interval for each of said axes. .Iaddend..Iadd.
 20. The programmable manipulator apparatus of claim 6 wherein said linear interpolation command signal generating means further comprises storage register means for storing each of said two command signals. .Iaddend..Iadd.
 21. The programmable manipulator apparatus of claim 6 further comprising timing means for sequentially advancing the operations of said linear interpolation command signal generating means to generate said series of interpolation command signals. .Iaddend..Iadd.
 22. The programmable manipulator apparatus of claim 6 further comprising storage control means for sequentially advancing said address read out controlling means. .Iaddend. .Iadd.
 23. The programmable manipulator apparatus of claim 6 wherein said two command signals represent two manipulator arm positions taught and recorded during a teach phase. .Iaddend..Iadd.
 24. The programmable manipulator apparatus of claim 6 wherein said address read out controlling means comprises means for reading out two command signals having successive address locations. .Iaddend..Iadd.
 25. The programmable manipulator apparatus of claim 6 wherein each of said command signals comprises an axis position signal for each of said axes. .Iaddend..Iadd.
 26. The programmable manipulator apparatus of claim 6 wherein a first of said two command signals represents a first manipulator arm position along a predetermined work path to which said manipulator arm has been moved and said second command signal represents a second manipulator arm position along said work path to which said manipulator arm is to be moved. .Iaddend..Iadd.
 27. The programmable manipulator apparatus of claim 6 further comprising means for alternately controlling said address read out controlling means to address and read out a first of said two command signals during a first time interval and said second command signal during a second time interval. .Iaddend..Iadd.
 28. A linear interpolation unit for generating command signals to control the movement of a programmed manipulator apparatus of the type having a manipulator arm movable in a plurality of controllable axes and an addressable series of stored command signals representing positions of the arm in each of the axes, said linear interpolation unit comprising: means for reading out two successive ones of said stored command signals; means for subtracting said two command signals; means for successively multiplying the output of said subtracting means by a predetermined series of multipliers to generate a series of substantially equally spaced incremental command signals; and means for successively combining each of the incremental command signals in said series with one of said two command signals to generate interpolation command signals representing a sequence of substantially equally spaced positions of said arm in each of said axes between the arm positions represented by said two successive stored command signals. .Iaddend..Iadd.
 29. In a programmable manipulator apparatus having a manipulator arm movable in a plurality of controllable axes, the combination of: storage means having stored therein an addressable series of command signals for each of said controllable axes, said command signals representing positions of said manipulator arm in said plurality of controllable axes; means for controlling the read out of said command signals by addressing said storage means; linear interpolation means responsive to two successive command signals read out of said storage means for generating a series of interpolation command signals representing a predetermined number of sequential, substantially equally spaced positions between said two successive command signals, said linear interpolation generating means comprising means for multiplying the difference between said two successive command signals by a predetermined multiplication factor in accordance with a linear interpolation operation; and means responsive to one of said two successive command signals and said series of interpolation command signals for moving said manipulator arm between the positions represented by said two successive command signals. .Iaddend..Iadd.
 30. A linear interpolation unit for generating interpolation command signals to control the movement of a programmable manipulator having a manipulator arm movable in a plurality of controllable axes and having stored therein an addressable series of position signals representing positions of the manipulator arm in the plurality of axes, said linear interpolation unit comprising: means for developing a digital difference signal representing the difference between two successive stored position signals; means for dividing said digital difference signal into a predetermined number of increments and for multiplying said increments by a variable integer multiplier to generate a series of multiplied interpolation increment signals representing equally spaced incremental positions between said two successive stored position signals; said variable integer multiplier increasing by one for each sequential interpolation increment signal in said series; and means for combining said multiplied interpolation increment signals with one of said two successive stored position signals to generate said interpolation command signals. .Iaddend. 